trees <- read.csv('https://raw.githubusercontent.com/dmcglinn/quant_methods/gh-pages/data/treedata_subset.csv')
library(car)
## Loading required package: carData
Anova(my_mod, type=3) Compare the p-values you observe using the function Anova to those generated using summary.
For each species address the following additional questions:
Prior to addressing the above questions you will want to restructure and subset the data using the # # following R code: wish to model species cover across all sampled plots create site x sp matrix for two species
sp_cov = with(trees, tapply(cover, list(plotID, spcode),
function(x) round(mean(x))))
sp_cov = ifelse(is.na(sp_cov), 0, sp_cov)
sp_cov = data.frame(plotID = row.names(sp_cov), sp_cov)
# create environmental matrix
cols_to_select = c('elev', 'tci', 'streamdist', 'disturb', 'beers')
env = aggregate(trees[ , cols_to_select], by = list(trees$plotID),
function(x) x[1])
names(env)[1] = 'plotID'
# merge species and environmental matrices
site_dat = merge(sp_cov, env, by='plotID')
# subset species of interest
abies = site_dat[ , c('ABIEFRA', cols_to_select)]
acer = site_dat[ , c('ACERRUB', cols_to_select)]
names(abies)[1] = 'cover'
names(acer)[1] = 'cover'
loading more libraries
library(ggplot2)
library(gridExtra)
library(scatterplot3d)
library(MASS)
## Warning: package 'MASS' was built under R version 4.1.2
viewing the data
#abies
#acer
names(abies)
## [1] "cover" "elev" "tci" "streamdist" "disturb"
## [6] "beers"
names(acer)
## [1] "cover" "elev" "tci" "streamdist" "disturb"
## [6] "beers"
boxplots for quantitative—- and their quantiles
ggplot(data = abies) +
geom_boxplot(mapping = aes(x = disturb, y = cover)) +
labs(x = 'Disturbance', y = 'Cover', title = 'abies disturbance versus cover')
ggplot(data = acer) +
geom_boxplot(mapping = aes(x = disturb, y = cover)) +
labs(x = 'Disturbance', y = 'Cover', title = 'acer disturbance versus cover')
# abies quantiles
quantile(abies$cover[abies$disturb == 'VIRGIN'])
## 0% 25% 50% 75% 100%
## 0 0 0 0 9
quantile(abies$cover[abies$disturb == 'CORPLOG'])
## 0% 25% 50% 75% 100%
## 0 0 0 0 1
quantile(abies$cover[abies$disturb == 'SETTLE'])
## 0% 25% 50% 75% 100%
## 0 0 0 0 3
quantile(abies$cover[abies$disturb == 'LT-SEL'])
## 0% 25% 50% 75% 100%
## 0 0 0 0 5
# acer quantiles
quantile(acer$cover[acer$disturb == 'VIRGIN'])
## 0% 25% 50% 75% 100%
## 0 0 2 6 10
quantile(acer$cover[acer$disturb == 'CORPLOG'])
## 0% 25% 50% 75% 100%
## 0 1 4 6 10
quantile(acer$cover[acer$disturb == 'SETTLE'])
## 0% 25% 50% 75% 100%
## 0.00 2.25 5.00 6.00 9.00
quantile(acer$cover[acer$disturb == 'LT-SEL'])
## 0% 25% 50% 75% 100%
## 0 2 5 6 10
ABIES original plots—-
plot(cover ~ elev, data = abies, xlab = 'Elevation (m)',
ylab = 'Cover', main= 'abies elevation versus cover')
plot(cover ~ tci, data = abies, xlab = 'Topographic Coverage Index',
ylab = 'Cover', main= 'abies tci versus cover')
plot(cover ~ streamdist, data = abies, xlab = 'Stream Distance (m)',
ylab = 'Cover', main= 'abies stream distance versus cover')
plot(cover ~ beers, data = abies, xlab = 'Beers',
ylab = 'Cover', main= 'abies beers versus cover')
ACER original plots—-
plot(cover ~ elev, data = acer, xlab = 'Elevation (m)',
ylab = 'Cover', main= 'acer elevation versus cover')
plot(cover ~ tci, data = acer, xlab = 'Topographic Coverage Index',
ylab = 'Cover', main= 'acer tci versus cover')
plot(cover ~ streamdist, data = acer, xlab = 'Stream Distance (m)',
ylab = 'Cover', main= 'acer stream distance versus cover')
plot(cover ~ beers, data = acer, xlab = 'Beers',
ylab = 'Cover', main= 'acer beers versus cover')
Intercept only models for Abies and Acer, cover as y variable—-
null_mod_abies = lm(cover ~ 1, data = abies)
null_mod_acer = lm(cover ~ 1, data = acer)
null_mod_abies
##
## Call:
## lm(formula = cover ~ 1, data = abies)
##
## Coefficients:
## (Intercept)
## 0.1866
null_mod_acer
##
## Call:
## lm(formula = cover ~ 1, data = acer)
##
## Coefficients:
## (Intercept)
## 4.061
mean(abies$cover)
## [1] 0.1866485
mean(acer$cover)
## [1] 4.061308
plot(cover ~ 1, data = abies)
abline(null_mod_abies, lwd = 2)
abline(h = mean(abies$cover), col = 'red', lty = 2, lwd = 2)
plot(cover ~ 1, data = acer)
abline(null_mod_acer, lwd = 2)
abline(h = mean(acer$cover), col = 'red', lty = 2, lwd = 2)
create single variable main effect models for each species and variable—-
# abies
elev_mod_abies = lm(cover ~ elev, data = abies)
tci_mod_abies = lm(cover ~ tci, data = abies)
streamdist_mod_abies = lm(cover ~ streamdist, data = abies)
disturb_mod_abies = lm(cover ~ disturb, data = abies)
beers_mod_abies = lm(cover ~ beers, data = abies)
# acer
elev_mod_acer = lm(cover ~ elev, data = acer)
tci_mod_acer = lm(cover ~ tci, data = acer)
streamdist_mod_acer = lm(cover ~ streamdist, data = acer)
disturb_mod_acer = lm(cover ~ disturb, data = acer)
beers_mod_acer = lm(cover ~ beers, data = acer)
abies single model main effect summaries—-
summary(elev_mod_abies)
##
## Call:
## lm(formula = cover ~ elev, data = abies)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.4859 -0.4908 -0.0754 0.2514 7.4325
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.088182 0.099951 -10.89 <2e-16 ***
## elev 0.001361 0.000100 13.61 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9441 on 732 degrees of freedom
## Multiple R-squared: 0.2019, Adjusted R-squared: 0.2008
## F-statistic: 185.2 on 1 and 732 DF, p-value: < 2.2e-16
Anova(elev_mod_abies, type= 3)
## Anova Table (Type III tests)
##
## Response: cover
## Sum Sq Df F value Pr(>F)
## (Intercept) 105.64 1 118.53 < 2.2e-16 ***
## elev 165.04 1 185.19 < 2.2e-16 ***
## Residuals 652.38 732
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#summary(tci_mod_abies)
summary(streamdist_mod_abies)
##
## Call:
## lm(formula = cover ~ streamdist, data = abies)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.1311 -0.3140 -0.1284 0.0293 8.2471
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.1116173 0.0623585 -1.790 0.0739 .
## streamdist 0.0012979 0.0002149 6.039 2.47e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.031 on 732 degrees of freedom
## Multiple R-squared: 0.04746, Adjusted R-squared: 0.04616
## F-statistic: 36.47 on 1 and 732 DF, p-value: 2.466e-09
summary(disturb_mod_abies)
##
## Call:
## lm(formula = cover ~ disturb, data = abies)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.8389 -0.0333 -0.0235 -0.0235 8.1611
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.006494 0.081014 0.080 0.936
## disturbLT-SEL 0.016967 0.097608 0.174 0.862
## disturbSETTLE 0.026840 0.133393 0.201 0.841
## disturbVIRGIN 0.832433 0.115528 7.205 1.45e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.005 on 730 degrees of freedom
## Multiple R-squared: 0.09737, Adjusted R-squared: 0.09366
## F-statistic: 26.25 on 3 and 730 DF, p-value: 3.941e-16
#summary(beers_mod_abies)
# significant p-values = elev, disturb (b/c of VIRGIN), streamdist
acer single model main effect summaries—-
summary(elev_mod_acer)
##
## Call:
## lm(formula = cover ~ elev, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.3551 -2.0426 0.1479 1.9037 6.7198
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.9249469 0.2685473 25.79 <2e-16 ***
## elev -0.0030577 0.0002688 -11.38 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.536 on 732 degrees of freedom
## Multiple R-squared: 0.1503, Adjusted R-squared: 0.1491
## F-statistic: 129.4 on 1 and 732 DF, p-value: < 2.2e-16
#summary(tci_mod_acer)
summary(streamdist_mod_acer)
##
## Call:
## lm(formula = cover ~ streamdist, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3240 -2.3126 0.7015 2.0323 6.0441
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.3240146 0.1659162 26.061 <2e-16 ***
## streamdist -0.0011432 0.0005718 -1.999 0.046 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.744 on 732 degrees of freedom
## Multiple R-squared: 0.00543, Adjusted R-squared: 0.004071
## F-statistic: 3.996 on 1 and 732 DF, p-value: 0.04597
summary(disturb_mod_acer)
##
## Call:
## lm(formula = cover ~ disturb, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.5000 -2.5000 0.6334 1.9351 6.9060
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0649 0.2182 18.627 < 2e-16 ***
## disturbLT-SEL 0.3016 0.2629 1.147 0.25166
## disturbSETTLE 0.4351 0.3593 1.211 0.22636
## disturbVIRGIN -0.9710 0.3112 -3.120 0.00188 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.708 on 730 degrees of freedom
## Multiple R-squared: 0.03402, Adjusted R-squared: 0.03005
## F-statistic: 8.569 on 3 and 730 DF, p-value: 1.348e-05
summary(beers_mod_acer)
##
## Call:
## lm(formula = cover ~ beers, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.6661 -2.5662 0.4242 2.2325 6.2191
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.6667 0.1882 24.791 < 2e-16 ***
## beers -0.5540 0.1456 -3.804 0.000154 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.725 on 732 degrees of freedom
## Multiple R-squared: 0.01939, Adjusted R-squared: 0.01805
## F-statistic: 14.47 on 1 and 732 DF, p-value: 0.000154
# significant p-values = all EXCEPT tci
# beers has a significant effect on acers, but not abies in these models
all main effects for both—-
all_mod_abies = lm(cover ~ elev + tci + streamdist + disturb + beers, data = abies)
all_mod_acer = lm(cover ~ elev + tci + streamdist + disturb + beers, data = acer)
summary(all_mod_abies)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = abies)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.5809 -0.4502 -0.0420 0.2346 6.9968
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.5705179 0.1871566 -8.391 2.50e-16 ***
## elev 0.0013315 0.0001237 10.764 < 2e-16 ***
## tci 0.0255969 0.0162231 1.578 0.115046
## streamdist 0.0004553 0.0002101 2.167 0.030574 *
## disturbLT-SEL 0.3248142 0.0941853 3.449 0.000596 ***
## disturbSETTLE 0.5408814 0.1311418 4.124 4.15e-05 ***
## disturbVIRGIN 0.5584644 0.1082404 5.159 3.20e-07 ***
## beers -0.0675883 0.0508326 -1.330 0.184059
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9203 on 726 degrees of freedom
## Multiple R-squared: 0.2478, Adjusted R-squared: 0.2406
## F-statistic: 34.17 on 7 and 726 DF, p-value: < 2.2e-16
summary(all_mod_acer)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.1258 -1.9460 0.1577 1.8624 6.8596
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.7372607 0.5086637 17.177 < 2e-16 ***
## elev -0.0034639 0.0003362 -10.304 < 2e-16 ***
## tci -0.1317294 0.0440921 -2.988 0.00291 **
## streamdist 0.0007520 0.0005711 1.317 0.18832
## disturbLT-SEL -0.4379126 0.2559816 -1.711 0.08756 .
## disturbSETTLE -0.9309789 0.3564239 -2.612 0.00919 **
## disturbVIRGIN -0.3601527 0.2941812 -1.224 0.22125
## beers -0.4101716 0.1381555 -2.969 0.00309 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.501 on 726 degrees of freedom
## Multiple R-squared: 0.1805, Adjusted R-squared: 0.1726
## F-statistic: 22.85 on 7 and 726 DF, p-value: < 2.2e-16
identifying outliers and modifying acer because of them—- Remove tci outliers and streamdistance outliers
# This code was used to identify the outliers...
# identify(acer$cover ~ abies$tci)
# identify(acer$cover ~ abies$streamdist)
plot(cover ~ streamdist, data = acer, xlab = 'Stream Distance (m)',
ylab = 'Cover', main= 'acer stream distance versus cover')
plot(cover ~ tci, data = acer, xlab = 'Topographic Coverage Index',
ylab = 'Cover', main= 'acer tci versus cover')
acer_subset = acer[-c(121, 318, 297,56,187), ]
# note... outliers 56 and 187 removed due to work further in assignment not tci or streamdistance outliers
# new plots without the outliers
plot(cover ~ tci, data= acer_subset, main="acer subset tci versus cover", xlab='tci', ylab= 'cover')
plot(cover ~ streamdist, data = acer_subset, xlab = 'Stream Distance (m)',
ylab = 'Cover', main= 'acer stream distance versus cover subset')
dim(acer)
## [1] 734 6
dim(acer_subset)
## [1] 729 6
new single variable models with the acersubset—-
elev_mod_acersubset = lm(cover ~ elev, data = acer_subset)
tci_mod_acersubset = lm(cover ~ tci, data = acer_subset)
streamdist_mod_acersubset = lm(cover ~ streamdist, data = acer_subset)
disturb_mod_acersubset = lm(cover ~ disturb, data = acer_subset)
beers_mod_acersubset = lm(cover ~ beers, data = acer_subset)
comparing the original summaries to the subset without outliers—-
# elevation
summary(elev_mod_acer)
##
## Call:
## lm(formula = cover ~ elev, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.3551 -2.0426 0.1479 1.9037 6.7198
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.9249469 0.2685473 25.79 <2e-16 ***
## elev -0.0030577 0.0002688 -11.38 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.536 on 732 degrees of freedom
## Multiple R-squared: 0.1503, Adjusted R-squared: 0.1491
## F-statistic: 129.4 on 1 and 732 DF, p-value: < 2.2e-16
summary(elev_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.3328 -2.0435 0.1452 1.8965 6.7214
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.8869358 0.2703665 25.47 <2e-16 ***
## elev -0.0030271 0.0002706 -11.19 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.536 on 727 degrees of freedom
## Multiple R-squared: 0.1469, Adjusted R-squared: 0.1457
## F-statistic: 125.1 on 1 and 727 DF, p-value: < 2.2e-16
# topographic coverage index
summary(tci_mod_acer)
##
## Call:
## lm(formula = cover ~ tci, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.2230 -2.1787 0.8352 1.9321 6.0764
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.41359 0.28922 15.260 <2e-16 ***
## tci -0.06060 0.04659 -1.301 0.194
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.748 on 732 degrees of freedom
## Multiple R-squared: 0.002306, Adjusted R-squared: 0.0009428
## F-statistic: 1.692 on 1 and 732 DF, p-value: 0.1938
summary(tci_mod_acersubset)
##
## Call:
## lm(formula = cover ~ tci, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3476 -2.2735 0.7727 1.9372 6.2211
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.7231 0.3194 14.79 <2e-16 ***
## tci -0.1168 0.0526 -2.22 0.0267 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.736 on 727 degrees of freedom
## Multiple R-squared: 0.006733, Adjusted R-squared: 0.005367
## F-statistic: 4.928 on 1 and 727 DF, p-value: 0.02673
# stream distance
summary(streamdist_mod_acer)
##
## Call:
## lm(formula = cover ~ streamdist, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3240 -2.3126 0.7015 2.0323 6.0441
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.3240146 0.1659162 26.061 <2e-16 ***
## streamdist -0.0011432 0.0005718 -1.999 0.046 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.744 on 732 degrees of freedom
## Multiple R-squared: 0.00543, Adjusted R-squared: 0.004071
## F-statistic: 3.996 on 1 and 732 DF, p-value: 0.04597
summary(streamdist_mod_acersubset)
##
## Call:
## lm(formula = cover ~ streamdist, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3222 -2.3103 0.7043 2.0112 6.0591
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.3221695 0.1671067 25.865 <2e-16 ***
## streamdist -0.0011840 0.0005795 -2.043 0.0414 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.737 on 727 degrees of freedom
## Multiple R-squared: 0.00571, Adjusted R-squared: 0.004342
## F-statistic: 4.175 on 1 and 727 DF, p-value: 0.04139
# disturbance
summary(disturb_mod_acer)
##
## Call:
## lm(formula = cover ~ disturb, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.5000 -2.5000 0.6334 1.9351 6.9060
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0649 0.2182 18.627 < 2e-16 ***
## disturbLT-SEL 0.3016 0.2629 1.147 0.25166
## disturbSETTLE 0.4351 0.3593 1.211 0.22636
## disturbVIRGIN -0.9710 0.3112 -3.120 0.00188 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.708 on 730 degrees of freedom
## Multiple R-squared: 0.03402, Adjusted R-squared: 0.03005
## F-statistic: 8.569 on 3 and 730 DF, p-value: 1.348e-05
summary(disturb_mod_acersubset)
##
## Call:
## lm(formula = cover ~ disturb, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.5172 -2.5172 0.6549 1.9060 6.9060
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0649 0.2178 18.667 < 2e-16 ***
## disturbLT-SEL 0.2802 0.2626 1.067 0.28633
## disturbSETTLE 0.4523 0.3624 1.248 0.21244
## disturbVIRGIN -0.9710 0.3105 -3.127 0.00184 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.702 on 725 degrees of freedom
## Multiple R-squared: 0.03372, Adjusted R-squared: 0.02972
## F-statistic: 8.433 on 3 and 725 DF, p-value: 1.633e-05
#beers index
summary(beers_mod_acer)
##
## Call:
## lm(formula = cover ~ beers, data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.6661 -2.5662 0.4242 2.2325 6.2191
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.6667 0.1882 24.791 < 2e-16 ***
## beers -0.5540 0.1456 -3.804 0.000154 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.725 on 732 degrees of freedom
## Multiple R-squared: 0.01939, Adjusted R-squared: 0.01805
## F-statistic: 14.47 on 1 and 732 DF, p-value: 0.000154
summary(beers_mod_acersubset)
##
## Call:
## lm(formula = cover ~ beers, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.647 -2.551 0.434 2.240 6.226
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.6480 0.1881 24.706 < 2e-16 ***
## beers -0.5468 0.1455 -3.758 0.000185 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.719 on 727 degrees of freedom
## Multiple R-squared: 0.01906, Adjusted R-squared: 0.01771
## F-statistic: 14.12 on 1 and 727 DF, p-value: 0.0001849
comparing the original main model with the subset main model for acer—-
all_mod_acersubset = lm(cover ~ elev + tci + streamdist + disturb + beers, data = acer_subset)
summary(all_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.1887 -1.9464 0.1631 1.9826 6.8396
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.2372046 0.5339143 17.301 < 2e-16 ***
## elev -0.0034945 0.0003398 -10.283 < 2e-16 ***
## tci -0.2046178 0.0498058 -4.108 4.44e-05 ***
## streamdist 0.0006598 0.0005794 1.139 0.25521
## disturbLT-SEL -0.4619579 0.2547171 -1.814 0.07015 .
## disturbSETTLE -1.0037448 0.3601843 -2.787 0.00546 **
## disturbVIRGIN -0.3555848 0.2925413 -1.216 0.22457
## beers -0.4378810 0.1379524 -3.174 0.00157 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.486 on 721 degrees of freedom
## Multiple R-squared: 0.1868, Adjusted R-squared: 0.1789
## F-statistic: 23.66 on 7 and 721 DF, p-value: < 2.2e-16
summary(all_mod_acer)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = acer)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.1258 -1.9460 0.1577 1.8624 6.8596
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.7372607 0.5086637 17.177 < 2e-16 ***
## elev -0.0034639 0.0003362 -10.304 < 2e-16 ***
## tci -0.1317294 0.0440921 -2.988 0.00291 **
## streamdist 0.0007520 0.0005711 1.317 0.18832
## disturbLT-SEL -0.4379126 0.2559816 -1.711 0.08756 .
## disturbSETTLE -0.9309789 0.3564239 -2.612 0.00919 **
## disturbVIRGIN -0.3601527 0.2941812 -1.224 0.22125
## beers -0.4101716 0.1381555 -2.969 0.00309 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.501 on 726 degrees of freedom
## Multiple R-squared: 0.1805, Adjusted R-squared: 0.1726
## F-statistic: 22.85 on 7 and 726 DF, p-value: < 2.2e-16
# removing the outliers did slightly improve the R-squared and adjusted R- squared, it also greatly increased the significance of tci( lowered the p value), so the subset without the outliers will be used from now on
model with elev, tci, and beers—-
# acer
etb_mod_acersubset = lm(cover ~ elev + tci + beers , data = acer_subset)
summary(etb_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + beers, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.6002 -2.0373 0.2047 1.8836 6.9286
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.6413102 0.4390231 19.683 < 2e-16 ***
## elev -0.0030863 0.0002711 -11.384 < 2e-16 ***
## tci -0.2170697 0.0488048 -4.448 1e-05 ***
## beers -0.4112964 0.1357451 -3.030 0.00253 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.495 on 725 degrees of freedom
## Multiple R-squared: 0.1766, Adjusted R-squared: 0.1732
## F-statistic: 51.82 on 3 and 725 DF, p-value: < 2.2e-16
# abies
etb_interaction_mod_acersubset = lm(cover ~ elev + tci + beers + tci * elev + elev * beers + beers * tci + beers * tci * elev , data = acer_subset)
summary(etb_interaction_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + beers + tci * elev + elev *
## beers + beers * tci + beers * tci * elev, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.4158 -1.8372 0.2633 1.7868 7.3039
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.8023043 1.5869529 3.656 0.000275 ***
## elev 0.0002365 0.0017578 0.135 0.893024
## tci 0.1058822 0.2512847 0.421 0.673615
## beers -0.0539380 1.3327971 -0.040 0.967730
## elev:tci -0.0003896 0.0002879 -1.353 0.176396
## elev:beers -0.0003380 0.0014374 -0.235 0.814144
## tci:beers 0.1102431 0.2274572 0.485 0.628053
## elev:tci:beers -0.0001337 0.0002550 -0.524 0.600182
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.477 on 721 degrees of freedom
## Multiple R-squared: 0.1924, Adjusted R-squared: 0.1846
## F-statistic: 24.54 on 7 and 721 DF, p-value: < 2.2e-16
# interaction effect with elev:tci and elev:beers
AIC(etb_interaction_mod_acersubset)
## [1] 3401.442
AIC(etb_mod_acersubset)
## [1] 3407.592
the above model just proved my suspicions on how important elevation was to the model, it will not be used over other models however because the r squared was lower
adding only elevation interaction to main model————-
# acer
elev_interaction_mod_acersubset = lm(cover ~ elev + tci + streamdist + disturb + beers + elev * tci + elev * beers + elev * streamdist + elev * disturb, data = acer_subset)
summary(elev_interaction_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.2920 -1.7988 0.2311 1.8044 6.6561
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.289e+00 1.330e+00 2.473 0.01363 *
## elev 2.685e-03 1.351e-03 1.988 0.04718 *
## tci 2.998e-01 1.463e-01 2.050 0.04074 *
## streamdist 2.009e-03 1.566e-03 1.283 0.19988
## disturbLT-SEL 1.289e+00 8.008e-01 1.609 0.10803
## disturbSETTLE 1.529e-01 1.483e+00 0.103 0.91788
## disturbVIRGIN 4.687e+00 1.163e+00 4.032 6.13e-05 ***
## beers 3.922e-01 3.913e-01 1.002 0.31663
## elev:tci -5.754e-04 1.653e-04 -3.481 0.00053 ***
## elev:beers -9.180e-04 3.987e-04 -2.303 0.02158 *
## elev:streamdist -1.013e-06 1.513e-06 -0.669 0.50348
## elev:disturbLT-SEL -1.489e-03 7.837e-04 -1.901 0.05776 .
## elev:disturbSETTLE -5.309e-04 2.105e-03 -0.252 0.80094
## elev:disturbVIRGIN -4.234e-03 9.815e-04 -4.314 1.83e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.434 on 715 degrees of freedom
## Multiple R-squared: 0.2268, Adjusted R-squared: 0.2127
## F-statistic: 16.13 on 13 and 715 DF, p-value: < 2.2e-16
# adding interaction to whole model----
full_mod_acersubset = update(all_mod_acersubset, ~ . + elev * disturb * tci * streamdist * beers)
all_mod_acersubset = lm(cover ~ elev + tci + streamdist + disturb + beers, data = acer_subset)
# comparing the three acer summary outputs
summary(all_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.1887 -1.9464 0.1631 1.9826 6.8396
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.2372046 0.5339143 17.301 < 2e-16 ***
## elev -0.0034945 0.0003398 -10.283 < 2e-16 ***
## tci -0.2046178 0.0498058 -4.108 4.44e-05 ***
## streamdist 0.0006598 0.0005794 1.139 0.25521
## disturbLT-SEL -0.4619579 0.2547171 -1.814 0.07015 .
## disturbSETTLE -1.0037448 0.3601843 -2.787 0.00546 **
## disturbVIRGIN -0.3555848 0.2925413 -1.216 0.22457
## beers -0.4378810 0.1379524 -3.174 0.00157 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.486 on 721 degrees of freedom
## Multiple R-squared: 0.1868, Adjusted R-squared: 0.1789
## F-statistic: 23.66 on 7 and 721 DF, p-value: < 2.2e-16
summary(elev_interaction_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.2920 -1.7988 0.2311 1.8044 6.6561
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.289e+00 1.330e+00 2.473 0.01363 *
## elev 2.685e-03 1.351e-03 1.988 0.04718 *
## tci 2.998e-01 1.463e-01 2.050 0.04074 *
## streamdist 2.009e-03 1.566e-03 1.283 0.19988
## disturbLT-SEL 1.289e+00 8.008e-01 1.609 0.10803
## disturbSETTLE 1.529e-01 1.483e+00 0.103 0.91788
## disturbVIRGIN 4.687e+00 1.163e+00 4.032 6.13e-05 ***
## beers 3.922e-01 3.913e-01 1.002 0.31663
## elev:tci -5.754e-04 1.653e-04 -3.481 0.00053 ***
## elev:beers -9.180e-04 3.987e-04 -2.303 0.02158 *
## elev:streamdist -1.013e-06 1.513e-06 -0.669 0.50348
## elev:disturbLT-SEL -1.489e-03 7.837e-04 -1.901 0.05776 .
## elev:disturbSETTLE -5.309e-04 2.105e-03 -0.252 0.80094
## elev:disturbVIRGIN -4.234e-03 9.815e-04 -4.314 1.83e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.434 on 715 degrees of freedom
## Multiple R-squared: 0.2268, Adjusted R-squared: 0.2127
## F-statistic: 16.13 on 13 and 715 DF, p-value: < 2.2e-16
summary(full_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev:disturb + elev:tci + tci:disturb + elev:streamdist +
## streamdist:disturb + tci:streamdist + elev:beers + disturb:beers +
## tci:beers + streamdist:beers + elev:tci:disturb + elev:streamdist:disturb +
## elev:tci:streamdist + tci:streamdist:disturb + elev:disturb:beers +
## elev:tci:beers + tci:disturb:beers + elev:streamdist:beers +
## streamdist:disturb:beers + tci:streamdist:beers + elev:tci:streamdist:disturb +
## elev:tci:disturb:beers + elev:streamdist:disturb:beers +
## elev:tci:streamdist:beers + tci:streamdist:disturb:beers +
## elev:tci:streamdist:disturb:beers, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.7392 -1.4313 0.0834 1.6428 6.5336
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.524e+00 7.090e+00 0.638 0.52370
## elev 4.582e-03 7.252e-03 0.632 0.52769
## tci 6.619e-01 9.226e-01 0.717 0.47333
## streamdist -2.631e-02 2.759e-02 -0.954 0.34057
## disturbLT-SEL 3.736e+00 8.237e+00 0.454 0.65032
## disturbSETTLE -8.253e+00 1.512e+01 -0.546 0.58533
## disturbVIRGIN -1.635e+01 1.757e+01 -0.930 0.35251
## beers 4.483e+00 5.725e+00 0.783 0.43389
## elev:disturbLT-SEL -6.959e-03 9.128e-03 -0.762 0.44609
## elev:disturbSETTLE 5.836e-03 2.239e-02 0.261 0.79448
## elev:disturbVIRGIN 9.693e-03 1.516e-02 0.639 0.52278
## elev:tci -1.058e-03 1.012e-03 -1.045 0.29643
## tci:disturbLT-SEL -1.000e+00 1.109e+00 -0.902 0.36736
## tci:disturbSETTLE 2.788e-01 2.372e+00 0.118 0.90648
## tci:disturbVIRGIN 3.491e+00 2.901e+00 1.203 0.22923
## elev:streamdist 9.644e-06 2.599e-05 0.371 0.71068
## streamdist:disturbLT-SEL -7.836e-03 3.338e-02 -0.235 0.81446
## streamdist:disturbSETTLE 4.208e-02 6.243e-02 0.674 0.50052
## streamdist:disturbVIRGIN 1.611e-01 6.259e-02 2.574 0.01026
## tci:streamdist 2.852e-03 3.922e-03 0.727 0.46735
## elev:beers -7.118e-03 5.800e-03 -1.227 0.22016
## disturbLT-SEL:beers -7.562e+00 6.734e+00 -1.123 0.26183
## disturbSETTLE:beers 4.170e+00 1.307e+01 0.319 0.74979
## disturbVIRGIN:beers 1.638e+01 1.552e+01 1.056 0.29158
## tci:beers -6.633e-01 7.664e-01 -0.865 0.38711
## streamdist:beers 2.867e-02 2.490e-02 1.151 0.24997
## elev:tci:disturbLT-SEL 1.143e-03 1.256e-03 0.910 0.36311
## elev:tci:disturbSETTLE -3.850e-04 3.791e-03 -0.102 0.91913
## elev:tci:disturbVIRGIN -2.514e-03 2.513e-03 -1.001 0.31743
## elev:streamdist:disturbLT-SEL 2.243e-05 3.489e-05 0.643 0.52058
## elev:streamdist:disturbSETTLE -1.635e-05 9.428e-05 -0.173 0.86238
## elev:streamdist:disturbVIRGIN -1.068e-04 4.969e-05 -2.150 0.03193
## elev:tci:streamdist -1.549e-06 3.715e-06 -0.417 0.67693
## tci:streamdist:disturbLT-SEL 3.365e-03 5.116e-03 0.658 0.51086
## tci:streamdist:disturbSETTLE -2.746e-03 1.063e-02 -0.258 0.79622
## tci:streamdist:disturbVIRGIN -2.735e-02 1.072e-02 -2.551 0.01096
## elev:disturbLT-SEL:beers 9.378e-03 7.417e-03 1.264 0.20658
## elev:disturbSETTLE:beers -4.308e-03 1.905e-02 -0.226 0.82118
## elev:disturbVIRGIN:beers -9.820e-03 1.359e-02 -0.723 0.47022
## elev:tci:beers 8.144e-04 8.334e-04 0.977 0.32883
## tci:disturbLT-SEL:beers 1.176e+00 9.616e-01 1.222 0.22197
## tci:disturbSETTLE:beers -3.553e-01 1.956e+00 -0.182 0.85591
## tci:disturbVIRGIN:beers -3.029e+00 2.753e+00 -1.100 0.27162
## elev:streamdist:beers -1.233e-05 2.307e-05 -0.535 0.59306
## streamdist:disturbLT-SEL:beers 2.255e-03 2.885e-02 0.078 0.93771
## streamdist:disturbSETTLE:beers -8.367e-02 8.301e-02 -1.008 0.31383
## streamdist:disturbVIRGIN:beers -1.401e-01 5.133e-02 -2.730 0.00649
## tci:streamdist:beers -6.927e-03 4.313e-03 -1.606 0.10875
## elev:tci:streamdist:disturbLT-SEL -3.806e-06 5.385e-06 -0.707 0.47991
## elev:tci:streamdist:disturbSETTLE -2.740e-07 1.696e-05 -0.016 0.98711
## elev:tci:streamdist:disturbVIRGIN 1.898e-05 8.480e-06 2.238 0.02554
## elev:tci:disturbLT-SEL:beers -1.319e-03 1.108e-03 -1.190 0.23441
## elev:tci:disturbSETTLE:beers 7.062e-04 2.956e-03 0.239 0.81124
## elev:tci:disturbVIRGIN:beers 1.944e-03 2.429e-03 0.800 0.42385
## elev:streamdist:disturbLT-SEL:beers -1.405e-05 2.847e-05 -0.493 0.62195
## elev:streamdist:disturbSETTLE:beers 7.854e-05 1.347e-04 0.583 0.56006
## elev:streamdist:disturbVIRGIN:beers 9.169e-05 4.156e-05 2.206 0.02772
## elev:tci:streamdist:beers 4.827e-06 3.951e-06 1.222 0.22220
## tci:streamdist:disturbLT-SEL:beers 1.938e-03 5.075e-03 0.382 0.70262
## tci:streamdist:disturbSETTLE:beers 1.604e-02 1.478e-02 1.086 0.27804
## tci:streamdist:disturbVIRGIN:beers 2.708e-02 9.361e-03 2.893 0.00394
## elev:tci:streamdist:disturbLT-SEL:beers -8.189e-07 4.946e-06 -0.166 0.86854
## elev:tci:streamdist:disturbSETTLE:beers -1.631e-05 2.413e-05 -0.676 0.49949
## elev:tci:streamdist:disturbVIRGIN:beers -1.875e-05 7.620e-06 -2.461 0.01413
##
## (Intercept)
## elev
## tci
## streamdist
## disturbLT-SEL
## disturbSETTLE
## disturbVIRGIN
## beers
## elev:disturbLT-SEL
## elev:disturbSETTLE
## elev:disturbVIRGIN
## elev:tci
## tci:disturbLT-SEL
## tci:disturbSETTLE
## tci:disturbVIRGIN
## elev:streamdist
## streamdist:disturbLT-SEL
## streamdist:disturbSETTLE
## streamdist:disturbVIRGIN *
## tci:streamdist
## elev:beers
## disturbLT-SEL:beers
## disturbSETTLE:beers
## disturbVIRGIN:beers
## tci:beers
## streamdist:beers
## elev:tci:disturbLT-SEL
## elev:tci:disturbSETTLE
## elev:tci:disturbVIRGIN
## elev:streamdist:disturbLT-SEL
## elev:streamdist:disturbSETTLE
## elev:streamdist:disturbVIRGIN *
## elev:tci:streamdist
## tci:streamdist:disturbLT-SEL
## tci:streamdist:disturbSETTLE
## tci:streamdist:disturbVIRGIN *
## elev:disturbLT-SEL:beers
## elev:disturbSETTLE:beers
## elev:disturbVIRGIN:beers
## elev:tci:beers
## tci:disturbLT-SEL:beers
## tci:disturbSETTLE:beers
## tci:disturbVIRGIN:beers
## elev:streamdist:beers
## streamdist:disturbLT-SEL:beers
## streamdist:disturbSETTLE:beers
## streamdist:disturbVIRGIN:beers **
## tci:streamdist:beers
## elev:tci:streamdist:disturbLT-SEL
## elev:tci:streamdist:disturbSETTLE
## elev:tci:streamdist:disturbVIRGIN *
## elev:tci:disturbLT-SEL:beers
## elev:tci:disturbSETTLE:beers
## elev:tci:disturbVIRGIN:beers
## elev:streamdist:disturbLT-SEL:beers
## elev:streamdist:disturbSETTLE:beers
## elev:streamdist:disturbVIRGIN:beers *
## elev:tci:streamdist:beers
## tci:streamdist:disturbLT-SEL:beers
## tci:streamdist:disturbSETTLE:beers
## tci:streamdist:disturbVIRGIN:beers **
## elev:tci:streamdist:disturbLT-SEL:beers
## elev:tci:streamdist:disturbSETTLE:beers
## elev:tci:streamdist:disturbVIRGIN:beers *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.382 on 665 degrees of freedom
## Multiple R-squared: 0.3116, Adjusted R-squared: 0.2464
## F-statistic: 4.778 on 63 and 665 DF, p-value: < 2.2e-16
# also comparing the anova outputs and AIC values
anova(all_mod_acersubset, full_mod_acersubset)
## Analysis of Variance Table
##
## Model 1: cover ~ elev + tci + streamdist + disturb + beers
## Model 2: cover ~ elev + tci + streamdist + disturb + beers + elev:disturb +
## elev:tci + tci:disturb + elev:streamdist + streamdist:disturb +
## tci:streamdist + elev:beers + disturb:beers + tci:beers +
## streamdist:beers + elev:tci:disturb + elev:streamdist:disturb +
## elev:tci:streamdist + tci:streamdist:disturb + elev:disturb:beers +
## elev:tci:beers + tci:disturb:beers + elev:streamdist:beers +
## streamdist:disturb:beers + tci:streamdist:beers + elev:tci:streamdist:disturb +
## elev:tci:disturb:beers + elev:streamdist:disturb:beers +
## elev:tci:streamdist:beers + tci:streamdist:disturb:beers +
## elev:tci:streamdist:disturb:beers
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 721 4455.6
## 2 665 3771.9 56 683.66 2.1523 5.567e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC(full_mod_acersubset)
## [1] 3397.041
AIC(all_mod_acersubset)
## [1] 3406.473
AIC(elev_interaction_mod_acersubset)
## [1] 3381.716
# this makes it absurdly long, but it does increase the r-squared... however it is very hard to explain all of those interactions so it also would not be very realistic to present this to an audience without being able to describe the interactions you are presenting.
remove abies outlier in tci and elevation
# identify(abies$cover ~ abies$tci)
# identify(abies$cover ~ abies$elevation)
abies_subset = abies[-c(121,33,109,56,53), ]
# note... outliers 109, 56, 53 # note... removed due to work further in assignment not tci or elevation outliers
dim(abies_subset)
## [1] 729 6
# comparing the main models of original and subset
all_mod_abiessubset = lm(cover ~ elev + tci + streamdist + disturb + beers, data = abies_subset)
summary(all_mod_abiessubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.3929 -0.4124 -0.0264 0.2104 7.1079
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.4732966 0.1848922 -7.968 6.28e-15 ***
## elev 0.0012176 0.0001205 10.101 < 2e-16 ***
## tci 0.0248990 0.0164388 1.515 0.130300
## streamdist 0.0004951 0.0002006 2.469 0.013794 *
## disturbLT-SEL 0.2892553 0.0900281 3.213 0.001372 **
## disturbSETTLE 0.4916583 0.1263228 3.892 0.000109 ***
## disturbVIRGIN 0.5322089 0.1031034 5.162 3.16e-07 ***
## beers -0.0508746 0.0485167 -1.049 0.294714
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8748 on 721 degrees of freedom
## Multiple R-squared: 0.2389, Adjusted R-squared: 0.2315
## F-statistic: 32.33 on 7 and 721 DF, p-value: < 2.2e-16
summary(all_mod_abies)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = abies)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.5809 -0.4502 -0.0420 0.2346 6.9968
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.5705179 0.1871566 -8.391 2.50e-16 ***
## elev 0.0013315 0.0001237 10.764 < 2e-16 ***
## tci 0.0255969 0.0162231 1.578 0.115046
## streamdist 0.0004553 0.0002101 2.167 0.030574 *
## disturbLT-SEL 0.3248142 0.0941853 3.449 0.000596 ***
## disturbSETTLE 0.5408814 0.1311418 4.124 4.15e-05 ***
## disturbVIRGIN 0.5584644 0.1082404 5.159 3.20e-07 ***
## beers -0.0675883 0.0508326 -1.330 0.184059
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9203 on 726 degrees of freedom
## Multiple R-squared: 0.2478, Adjusted R-squared: 0.2406
## F-statistic: 34.17 on 7 and 726 DF, p-value: < 2.2e-16
# abies with interaction, full and elevation----
full_mod_abiessubset = update(all_mod_abiessubset, ~ . + elev * disturb * tci * streamdist * beers)
elev_interaction_mod_abiessubset = lm(cover ~ elev + tci + streamdist + disturb + beers + elev * tci + elev * beers + elev * streamdist + elev * disturb, data = abies_subset)
summary(all_mod_abiessubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers,
## data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.3929 -0.4124 -0.0264 0.2104 7.1079
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.4732966 0.1848922 -7.968 6.28e-15 ***
## elev 0.0012176 0.0001205 10.101 < 2e-16 ***
## tci 0.0248990 0.0164388 1.515 0.130300
## streamdist 0.0004951 0.0002006 2.469 0.013794 *
## disturbLT-SEL 0.2892553 0.0900281 3.213 0.001372 **
## disturbSETTLE 0.4916583 0.1263228 3.892 0.000109 ***
## disturbVIRGIN 0.5322089 0.1031034 5.162 3.16e-07 ***
## beers -0.0508746 0.0485167 -1.049 0.294714
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8748 on 721 degrees of freedom
## Multiple R-squared: 0.2389, Adjusted R-squared: 0.2315
## F-statistic: 32.33 on 7 and 721 DF, p-value: < 2.2e-16
summary(elev_interaction_mod_abiessubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.9980 -0.0890 -0.0034 0.0634 4.0424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.227e-01 3.061e-01 3.014 0.00267 **
## elev -1.041e-03 3.190e-04 -3.265 0.00115 **
## tci -6.301e-02 3.366e-02 -1.872 0.06160 .
## streamdist -2.079e-03 3.569e-04 -5.826 8.58e-09 ***
## disturbLT-SEL -1.318e-02 1.918e-01 -0.069 0.94523
## disturbSETTLE -8.173e-02 3.424e-01 -0.239 0.81139
## disturbVIRGIN -5.503e+00 2.789e-01 -19.732 < 2e-16 ***
## beers -1.106e-01 9.346e-02 -1.183 0.23718
## elev:tci 7.815e-05 3.989e-05 1.959 0.05048 .
## elev:beers 9.327e-05 9.539e-05 0.978 0.32854
## elev:streamdist 2.291e-06 3.519e-07 6.511 1.40e-10 ***
## elev:disturbLT-SEL -4.908e-06 1.886e-04 -0.026 0.97925
## elev:disturbSETTLE 7.436e-05 4.786e-04 0.155 0.87657
## elev:disturbVIRGIN 5.003e-03 2.357e-04 21.227 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5828 on 715 degrees of freedom
## Multiple R-squared: 0.665, Adjusted R-squared: 0.6589
## F-statistic: 109.2 on 13 and 715 DF, p-value: < 2.2e-16
summary(full_mod_abiessubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev:disturb + elev:tci + tci:disturb + elev:streamdist +
## streamdist:disturb + tci:streamdist + elev:beers + disturb:beers +
## tci:beers + streamdist:beers + elev:tci:disturb + elev:streamdist:disturb +
## elev:tci:streamdist + tci:streamdist:disturb + elev:disturb:beers +
## elev:tci:beers + tci:disturb:beers + elev:streamdist:beers +
## streamdist:disturb:beers + tci:streamdist:beers + elev:tci:streamdist:disturb +
## elev:tci:disturb:beers + elev:streamdist:disturb:beers +
## elev:tci:streamdist:beers + tci:streamdist:disturb:beers +
## elev:tci:streamdist:disturb:beers, data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.1544 -0.0170 0.0000 0.0141 3.6775
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.293e-01 1.395e+00 0.379 0.70453
## elev -6.010e-04 1.427e-03 -0.421 0.67373
## tci -5.408e-02 1.815e-01 -0.298 0.76587
## streamdist -2.483e-03 5.429e-03 -0.457 0.64750
## disturbLT-SEL -1.080e-01 1.782e+00 -0.061 0.95167
## disturbSETTLE -5.293e-01 2.319e+00 -0.228 0.81949
## disturbVIRGIN -4.445e+00 3.463e+00 -1.284 0.19972
## beers -3.399e-01 1.127e+00 -0.302 0.76294
## elev:disturbLT-SEL -1.554e-04 2.160e-03 -0.072 0.94265
## elev:disturbSETTLE 6.010e-04 3.097e-03 0.194 0.84618
## elev:disturbVIRGIN 5.074e-03 2.987e-03 1.699 0.08983
## elev:tci 6.396e-05 1.992e-04 0.321 0.74824
## tci:disturbLT-SEL 1.055e-03 2.559e-01 0.004 0.99671
## tci:disturbSETTLE 5.408e-02 2.945e-01 0.184 0.85435
## tci:disturbVIRGIN 1.403e+00 5.712e-01 2.457 0.01427
## elev:streamdist 2.736e-06 5.114e-06 0.535 0.59279
## streamdist:disturbLT-SEL -1.062e-03 6.805e-03 -0.156 0.87605
## streamdist:disturbSETTLE 2.483e-03 1.036e-02 0.240 0.81068
## streamdist:disturbVIRGIN 3.274e-02 1.238e-02 2.644 0.00838
## tci:streamdist 2.392e-04 7.718e-04 0.310 0.75672
## elev:beers 3.788e-04 1.141e-03 0.332 0.74009
## disturbLT-SEL:beers 8.209e-02 1.387e+00 0.059 0.95283
## disturbSETTLE:beers 3.399e-01 2.396e+00 0.142 0.88721
## disturbVIRGIN:beers 1.989e+00 3.056e+00 0.651 0.51545
## tci:beers 3.516e-02 1.508e-01 0.233 0.81574
## streamdist:beers 1.598e-03 4.900e-03 0.326 0.74449
## elev:tci:disturbLT-SEL 3.179e-05 3.278e-04 0.097 0.92277
## elev:tci:disturbSETTLE -6.396e-05 4.074e-04 -0.157 0.87529
## elev:tci:disturbVIRGIN -1.285e-03 4.948e-04 -2.596 0.00963
## elev:streamdist:disturbLT-SEL 3.362e-06 7.486e-06 0.449 0.65349
## elev:streamdist:disturbSETTLE -2.736e-06 1.479e-05 -0.185 0.85329
## elev:streamdist:disturbVIRGIN -3.304e-05 9.839e-06 -3.358 0.00083
## elev:tci:streamdist -2.691e-07 7.311e-07 -0.368 0.71296
## tci:streamdist:disturbLT-SEL 2.797e-04 1.059e-03 0.264 0.79181
## tci:streamdist:disturbSETTLE -2.392e-04 1.605e-03 -0.149 0.88158
## tci:streamdist:disturbVIRGIN -1.114e-02 2.116e-03 -5.265 1.89e-07
## elev:disturbLT-SEL:beers 9.436e-05 1.652e-03 0.057 0.95448
## elev:disturbSETTLE:beers -3.788e-04 3.402e-03 -0.111 0.91137
## elev:disturbVIRGIN:beers -1.604e-03 2.676e-03 -0.599 0.54906
## elev:tci:beers -4.068e-05 1.640e-04 -0.248 0.80419
## tci:disturbLT-SEL:beers -1.370e-03 2.030e-01 -0.007 0.99462
## tci:disturbSETTLE:beers -3.516e-02 3.371e-01 -0.104 0.91696
## tci:disturbVIRGIN:beers -7.592e-01 5.418e-01 -1.401 0.16157
## elev:streamdist:beers -1.719e-06 4.539e-06 -0.379 0.70499
## streamdist:disturbLT-SEL:beers -2.982e-04 5.741e-03 -0.052 0.95859
## streamdist:disturbSETTLE:beers -1.598e-03 1.619e-02 -0.099 0.92140
## streamdist:disturbVIRGIN:beers -4.312e-02 1.012e-02 -4.260 2.34e-05
## tci:streamdist:beers -1.533e-04 8.487e-04 -0.181 0.85669
## elev:tci:streamdist:disturbLT-SEL -6.327e-07 1.189e-06 -0.532 0.59481
## elev:tci:streamdist:disturbSETTLE 2.691e-07 2.386e-06 0.113 0.91025
## elev:tci:streamdist:disturbVIRGIN 1.003e-05 1.676e-06 5.987 3.49e-09
## elev:tci:disturbLT-SEL:beers -2.140e-05 2.588e-04 -0.083 0.93412
## elev:tci:disturbSETTLE:beers 4.068e-05 4.839e-04 0.084 0.93303
## elev:tci:disturbVIRGIN:beers 5.890e-04 4.780e-04 1.232 0.21829
## elev:streamdist:disturbLT-SEL:beers -8.673e-07 5.908e-06 -0.147 0.88333
## elev:streamdist:disturbSETTLE:beers 1.719e-06 2.625e-05 0.065 0.94781
## elev:streamdist:disturbVIRGIN:beers 3.654e-05 8.197e-06 4.458 9.72e-06
## elev:tci:streamdist:beers 1.685e-07 7.774e-07 0.217 0.82843
## tci:streamdist:disturbLT-SEL:beers -3.597e-05 1.011e-03 -0.036 0.97161
## tci:streamdist:disturbSETTLE:beers 1.533e-04 2.866e-03 0.053 0.95735
## tci:streamdist:disturbVIRGIN:beers 9.458e-03 1.844e-03 5.129 3.83e-07
## elev:tci:streamdist:disturbLT-SEL:beers 2.104e-07 1.031e-06 0.204 0.83832
## elev:tci:streamdist:disturbSETTLE:beers -1.685e-07 4.672e-06 -0.036 0.97123
## elev:tci:streamdist:disturbVIRGIN:beers -7.922e-06 1.501e-06 -5.277 1.78e-07
##
## (Intercept)
## elev
## tci
## streamdist
## disturbLT-SEL
## disturbSETTLE
## disturbVIRGIN
## beers
## elev:disturbLT-SEL
## elev:disturbSETTLE
## elev:disturbVIRGIN .
## elev:tci
## tci:disturbLT-SEL
## tci:disturbSETTLE
## tci:disturbVIRGIN *
## elev:streamdist
## streamdist:disturbLT-SEL
## streamdist:disturbSETTLE
## streamdist:disturbVIRGIN **
## tci:streamdist
## elev:beers
## disturbLT-SEL:beers
## disturbSETTLE:beers
## disturbVIRGIN:beers
## tci:beers
## streamdist:beers
## elev:tci:disturbLT-SEL
## elev:tci:disturbSETTLE
## elev:tci:disturbVIRGIN **
## elev:streamdist:disturbLT-SEL
## elev:streamdist:disturbSETTLE
## elev:streamdist:disturbVIRGIN ***
## elev:tci:streamdist
## tci:streamdist:disturbLT-SEL
## tci:streamdist:disturbSETTLE
## tci:streamdist:disturbVIRGIN ***
## elev:disturbLT-SEL:beers
## elev:disturbSETTLE:beers
## elev:disturbVIRGIN:beers
## elev:tci:beers
## tci:disturbLT-SEL:beers
## tci:disturbSETTLE:beers
## tci:disturbVIRGIN:beers
## elev:streamdist:beers
## streamdist:disturbLT-SEL:beers
## streamdist:disturbSETTLE:beers
## streamdist:disturbVIRGIN:beers ***
## tci:streamdist:beers
## elev:tci:streamdist:disturbLT-SEL
## elev:tci:streamdist:disturbSETTLE
## elev:tci:streamdist:disturbVIRGIN ***
## elev:tci:disturbLT-SEL:beers
## elev:tci:disturbSETTLE:beers
## elev:tci:disturbVIRGIN:beers
## elev:streamdist:disturbLT-SEL:beers
## elev:streamdist:disturbSETTLE:beers
## elev:streamdist:disturbVIRGIN:beers ***
## elev:tci:streamdist:beers
## tci:streamdist:disturbLT-SEL:beers
## tci:streamdist:disturbSETTLE:beers
## tci:streamdist:disturbVIRGIN:beers ***
## elev:tci:streamdist:disturbLT-SEL:beers
## elev:tci:streamdist:disturbSETTLE:beers
## elev:tci:streamdist:disturbVIRGIN:beers ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4686 on 665 degrees of freedom
## Multiple R-squared: 0.7985, Adjusted R-squared: 0.7794
## F-statistic: 41.84 on 63 and 665 DF, p-value: < 2.2e-16
# interaction had an even larger effect on the abies distributions
# this could be attributed to overfitting however
Poisson calculation start—- assume all poisson calculations are done using the subsets with outliers removed
summary(elev_interaction_mod_abiessubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.9980 -0.0890 -0.0034 0.0634 4.0424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.227e-01 3.061e-01 3.014 0.00267 **
## elev -1.041e-03 3.190e-04 -3.265 0.00115 **
## tci -6.301e-02 3.366e-02 -1.872 0.06160 .
## streamdist -2.079e-03 3.569e-04 -5.826 8.58e-09 ***
## disturbLT-SEL -1.318e-02 1.918e-01 -0.069 0.94523
## disturbSETTLE -8.173e-02 3.424e-01 -0.239 0.81139
## disturbVIRGIN -5.503e+00 2.789e-01 -19.732 < 2e-16 ***
## beers -1.106e-01 9.346e-02 -1.183 0.23718
## elev:tci 7.815e-05 3.989e-05 1.959 0.05048 .
## elev:beers 9.327e-05 9.539e-05 0.978 0.32854
## elev:streamdist 2.291e-06 3.519e-07 6.511 1.40e-10 ***
## elev:disturbLT-SEL -4.908e-06 1.886e-04 -0.026 0.97925
## elev:disturbSETTLE 7.436e-05 4.786e-04 0.155 0.87657
## elev:disturbVIRGIN 5.003e-03 2.357e-04 21.227 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5828 on 715 degrees of freedom
## Multiple R-squared: 0.665, Adjusted R-squared: 0.6589
## F-statistic: 109.2 on 13 and 715 DF, p-value: < 2.2e-16
summary(elev_interaction_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.2920 -1.7988 0.2311 1.8044 6.6561
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.289e+00 1.330e+00 2.473 0.01363 *
## elev 2.685e-03 1.351e-03 1.988 0.04718 *
## tci 2.998e-01 1.463e-01 2.050 0.04074 *
## streamdist 2.009e-03 1.566e-03 1.283 0.19988
## disturbLT-SEL 1.289e+00 8.008e-01 1.609 0.10803
## disturbSETTLE 1.529e-01 1.483e+00 0.103 0.91788
## disturbVIRGIN 4.687e+00 1.163e+00 4.032 6.13e-05 ***
## beers 3.922e-01 3.913e-01 1.002 0.31663
## elev:tci -5.754e-04 1.653e-04 -3.481 0.00053 ***
## elev:beers -9.180e-04 3.987e-04 -2.303 0.02158 *
## elev:streamdist -1.013e-06 1.513e-06 -0.669 0.50348
## elev:disturbLT-SEL -1.489e-03 7.837e-04 -1.901 0.05776 .
## elev:disturbSETTLE -5.309e-04 2.105e-03 -0.252 0.80094
## elev:disturbVIRGIN -4.234e-03 9.815e-04 -4.314 1.83e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.434 on 715 degrees of freedom
## Multiple R-squared: 0.2268, Adjusted R-squared: 0.2127
## F-statistic: 16.13 on 13 and 715 DF, p-value: < 2.2e-16
# poisson individual variables acer
elev_mod_acer_poi = glm(cover ~ elev, data = acer_subset, family = "poisson")
tci_mod_acer_poi = glm(cover ~ tci, data = acer_subset, family = "poisson")
streamdist_mod_acer_poi = glm(cover ~ streamdist, data = acer_subset, family = "poisson")
disturb_mod_acer_poi = glm(cover ~ disturb, data = acer_subset, family = "poisson")
beers_mod_acer_poi = glm(cover ~ beers, data = acer_subset, family = "poisson")
# poisson individual variables abies
elev_mod_abies_poi = glm(cover ~ elev, data = abies_subset, family = "poisson")
tci_mod_abies_poi = glm(cover ~ tci, data = abies_subset, family = "poisson")
streamdist_mod_abies_poi = glm(cover ~ streamdist, data = abies_subset, family = "poisson")
disturb_mod_abies_poi = glm(cover ~ disturb, data = abies_subset, family = "poisson")
beers_mod_abies_poi = glm(cover ~ beers, data = abies_subset, family = "poisson")
# summaries of individual poisson models
# abies
summary(elev_mod_abies_poi)
##
## Call:
## glm(formula = cover ~ elev, family = "poisson", data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.0538 -0.1707 -0.0452 -0.0170 3.7573
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.412e+01 8.742e-01 -16.15 <2e-16 ***
## elev 8.410e-03 4.723e-04 17.81 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.101 on 728 degrees of freedom
## Residual deviance: 94.759 on 727 degrees of freedom
## AIC: 177.53
##
## Number of Fisher Scoring iterations: 7
summary(tci_mod_abies_poi)
##
## Call:
## glm(formula = cover ~ tci, family = "poisson", data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.6644 -0.6054 -0.5831 -0.5508 7.5677
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.26314 0.31053 -4.068 4.75e-05 ***
## tci -0.09491 0.05436 -1.746 0.0808 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.10 on 728 degrees of freedom
## Residual deviance: 855.64 on 727 degrees of freedom
## AIC: 938.41
##
## Number of Fisher Scoring iterations: 7
summary(streamdist_mod_abies_poi)
##
## Call:
## glm(formula = cover ~ streamdist, family = "poisson", data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.9769 -0.5653 -0.3938 -0.2817 6.8156
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.5650557 0.1989483 -17.92 <2e-16 ***
## streamdist 0.0052780 0.0003806 13.87 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.10 on 728 degrees of freedom
## Residual deviance: 693.33 on 727 degrees of freedom
## AIC: 776.1
##
## Number of Fisher Scoring iterations: 7
summary(disturb_mod_abies_poi)
##
## Call:
## glm(formula = cover ~ disturb, family = "poisson", data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.257 -0.133 -0.133 -0.114 5.383
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -5.0370 1.0000 -5.037 4.73e-07 ***
## disturbLT-SEL 0.3096 1.1547 0.268 0.789
## disturbSETTLE -13.2656 609.4918 -0.022 0.983
## disturbVIRGIN 4.8019 1.0043 4.782 1.74e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.10 on 728 degrees of freedom
## Residual deviance: 517.93 on 725 degrees of freedom
## AIC: 604.7
##
## Number of Fisher Scoring iterations: 16
summary(beers_mod_abies_poi)
##
## Call:
## glm(formula = cover ~ beers, family = "poisson", data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -0.6128 -0.6023 -0.5764 -0.5457 7.3627
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.9549 0.1790 -10.923 <2e-16 ***
## beers 0.1411 0.1329 1.062 0.288
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.10 on 728 degrees of freedom
## Residual deviance: 857.96 on 727 degrees of freedom
## AIC: 940.73
##
## Number of Fisher Scoring iterations: 7
# acer
summary(elev_mod_acer_poi)
##
## Call:
## glm(formula = cover ~ elev, family = "poisson", data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.3180 -1.4269 0.0776 0.8797 3.0522
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.123e+00 5.242e-02 40.50 <2e-16 ***
## elev -8.131e-04 5.796e-05 -14.03 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1690.7 on 727 degrees of freedom
## AIC: 3655.3
##
## Number of Fisher Scoring iterations: 5
summary(tci_mod_acer_poi)
##
## Call:
## glm(formula = cover ~ tci, family = "poisson", data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.9558 -1.2337 0.3618 0.9046 2.6563
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.57196 0.05973 26.317 < 2e-16 ***
## tci -0.03034 0.01006 -3.017 0.00255 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1891.0 on 727 degrees of freedom
## AIC: 3855.6
##
## Number of Fisher Scoring iterations: 5
summary(streamdist_mod_acer_poi)
##
## Call:
## glm(formula = cover ~ streamdist, family = "poisson", data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.9434 -1.2483 0.3276 0.9397 2.5542
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.4659546 0.0299693 48.915 < 2e-16 ***
## streamdist -0.0002984 0.0001074 -2.779 0.00546 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1892.6 on 727 degrees of freedom
## AIC: 3857.2
##
## Number of Fisher Scoring iterations: 5
summary(disturb_mod_acer_poi)
##
## Call:
## glm(formula = cover ~ disturb, family = "poisson", data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.0057 -1.3325 0.3067 0.8957 3.1065
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.40240 0.03997 35.088 < 2e-16 ***
## disturbLT-SEL 0.06666 0.04771 1.397 0.162
## disturbSETTLE 0.10550 0.06436 1.639 0.101
## disturbVIRGIN -0.27295 0.06137 -4.447 8.69e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1852.1 on 725 degrees of freedom
## AIC: 3820.8
##
## Number of Fisher Scoring iterations: 5
summary(beers_mod_acer_poi)
##
## Call:
## glm(formula = cover ~ beers, family = "poisson", data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.0558 -1.3503 0.2107 1.0235 2.6564
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.54109 0.03282 46.951 < 2e-16 ***
## beers -0.13415 0.02645 -5.072 3.94e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1874.7 on 727 degrees of freedom
## AIC: 3839.4
##
## Number of Fisher Scoring iterations: 5
poisson with elevation interaction only—-
abies_poi = glm(cover ~ elev + tci + streamdist + disturb + beers + elev * tci + elev * beers + elev * streamdist + elev * disturb, data = abies_subset,
family='poisson')
## Warning: glm.fit: fitted rates numerically 0 occurred
acer_poi = glm(cover ~ elev + tci + streamdist + disturb + beers + elev * tci + elev * beers + elev * streamdist + elev * disturb, data = acer_subset,
family='poisson')
summary(abies_poi)
##
## Call:
## glm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## family = "poisson", data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.557 0.000 0.000 0.000 2.593
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.723e+02 7.315e+04 -0.004 0.997
## elev 1.643e-01 4.407e+01 0.004 0.997
## tci -1.342e+00 1.028e+00 -1.306 0.192
## streamdist 2.183e-03 5.794e-03 0.377 0.706
## disturbLT-SEL -1.200e+02 8.617e+04 -0.001 0.999
## disturbSETTLE 2.514e+02 1.681e+05 0.001 0.999
## disturbVIRGIN 2.638e+02 7.315e+04 0.004 0.997
## beers 1.647e+00 1.677e+00 0.982 0.326
## elev:tci 8.249e-04 5.568e-04 1.482 0.138
## elev:beers -8.460e-04 9.177e-04 -0.922 0.357
## elev:streamdist -2.227e-06 3.192e-06 -0.698 0.485
## elev:disturbLT-SEL 6.422e-02 5.139e+01 0.001 0.999
## elev:disturbSETTLE -1.681e-01 2.392e+02 -0.001 0.999
## elev:disturbVIRGIN -1.590e-01 4.407e+01 -0.004 0.997
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.101 on 728 degrees of freedom
## Residual deviance: 47.814 on 715 degrees of freedom
## AIC: 154.58
##
## Number of Fisher Scoring iterations: 24
summary(acer_poi)
##
## Call:
## glm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## family = "poisson", data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.2861 -1.2305 -0.0065 0.8162 3.0984
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 7.225e-01 2.701e-01 2.675 0.00748 **
## elev 1.330e-03 3.011e-04 4.416 1.01e-05 ***
## tci 1.272e-01 3.136e-02 4.056 5.00e-05 ***
## streamdist 8.388e-04 3.181e-04 2.637 0.00836 **
## disturbLT-SEL 2.910e-01 1.559e-01 1.867 0.06188 .
## disturbSETTLE 5.601e-02 2.899e-01 0.193 0.84677
## disturbVIRGIN 2.269e+00 2.837e-01 7.997 1.27e-15 ***
## beers 2.006e-01 8.131e-02 2.467 0.01363 *
## elev:tci -2.235e-04 3.972e-05 -5.627 1.83e-08 ***
## elev:beers -3.535e-04 9.061e-05 -3.901 9.57e-05 ***
## elev:streamdist -7.184e-07 3.575e-07 -2.010 0.04448 *
## elev:disturbLT-SEL -3.410e-04 1.614e-04 -2.113 0.03463 *
## elev:disturbSETTLE -1.380e-04 4.181e-04 -0.330 0.74143
## elev:disturbVIRGIN -2.125e-03 2.599e-04 -8.176 2.94e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1510.2 on 715 degrees of freedom
## AIC: 3498.9
##
## Number of Fisher Scoring iterations: 6
pseudo r ^2
pseudo_r2 = function(glm_mod) {
1 - glm_mod$deviance / glm_mod$null.deviance
}
# comparing poisson with equivalent OLS----
summary(abies_poi)
##
## Call:
## glm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## family = "poisson", data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.557 0.000 0.000 0.000 2.593
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.723e+02 7.315e+04 -0.004 0.997
## elev 1.643e-01 4.407e+01 0.004 0.997
## tci -1.342e+00 1.028e+00 -1.306 0.192
## streamdist 2.183e-03 5.794e-03 0.377 0.706
## disturbLT-SEL -1.200e+02 8.617e+04 -0.001 0.999
## disturbSETTLE 2.514e+02 1.681e+05 0.001 0.999
## disturbVIRGIN 2.638e+02 7.315e+04 0.004 0.997
## beers 1.647e+00 1.677e+00 0.982 0.326
## elev:tci 8.249e-04 5.568e-04 1.482 0.138
## elev:beers -8.460e-04 9.177e-04 -0.922 0.357
## elev:streamdist -2.227e-06 3.192e-06 -0.698 0.485
## elev:disturbLT-SEL 6.422e-02 5.139e+01 0.001 0.999
## elev:disturbSETTLE -1.681e-01 2.392e+02 -0.001 0.999
## elev:disturbVIRGIN -1.590e-01 4.407e+01 -0.004 0.997
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.101 on 728 degrees of freedom
## Residual deviance: 47.814 on 715 degrees of freedom
## AIC: 154.58
##
## Number of Fisher Scoring iterations: 24
summary(elev_interaction_mod_abiessubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.9980 -0.0890 -0.0034 0.0634 4.0424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.227e-01 3.061e-01 3.014 0.00267 **
## elev -1.041e-03 3.190e-04 -3.265 0.00115 **
## tci -6.301e-02 3.366e-02 -1.872 0.06160 .
## streamdist -2.079e-03 3.569e-04 -5.826 8.58e-09 ***
## disturbLT-SEL -1.318e-02 1.918e-01 -0.069 0.94523
## disturbSETTLE -8.173e-02 3.424e-01 -0.239 0.81139
## disturbVIRGIN -5.503e+00 2.789e-01 -19.732 < 2e-16 ***
## beers -1.106e-01 9.346e-02 -1.183 0.23718
## elev:tci 7.815e-05 3.989e-05 1.959 0.05048 .
## elev:beers 9.327e-05 9.539e-05 0.978 0.32854
## elev:streamdist 2.291e-06 3.519e-07 6.511 1.40e-10 ***
## elev:disturbLT-SEL -4.908e-06 1.886e-04 -0.026 0.97925
## elev:disturbSETTLE 7.436e-05 4.786e-04 0.155 0.87657
## elev:disturbVIRGIN 5.003e-03 2.357e-04 21.227 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5828 on 715 degrees of freedom
## Multiple R-squared: 0.665, Adjusted R-squared: 0.6589
## F-statistic: 109.2 on 13 and 715 DF, p-value: < 2.2e-16
pseudo_r2(abies_poi)
## [1] 0.9443436
summary(acer_poi)
##
## Call:
## glm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## family = "poisson", data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.2861 -1.2305 -0.0065 0.8162 3.0984
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 7.225e-01 2.701e-01 2.675 0.00748 **
## elev 1.330e-03 3.011e-04 4.416 1.01e-05 ***
## tci 1.272e-01 3.136e-02 4.056 5.00e-05 ***
## streamdist 8.388e-04 3.181e-04 2.637 0.00836 **
## disturbLT-SEL 2.910e-01 1.559e-01 1.867 0.06188 .
## disturbSETTLE 5.601e-02 2.899e-01 0.193 0.84677
## disturbVIRGIN 2.269e+00 2.837e-01 7.997 1.27e-15 ***
## beers 2.006e-01 8.131e-02 2.467 0.01363 *
## elev:tci -2.235e-04 3.972e-05 -5.627 1.83e-08 ***
## elev:beers -3.535e-04 9.061e-05 -3.901 9.57e-05 ***
## elev:streamdist -7.184e-07 3.575e-07 -2.010 0.04448 *
## elev:disturbLT-SEL -3.410e-04 1.614e-04 -2.113 0.03463 *
## elev:disturbSETTLE -1.380e-04 4.181e-04 -0.330 0.74143
## elev:disturbVIRGIN -2.125e-03 2.599e-04 -8.176 2.94e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1510.2 on 715 degrees of freedom
## AIC: 3498.9
##
## Number of Fisher Scoring iterations: 6
summary(elev_interaction_mod_acersubset)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * streamdist + elev * disturb,
## data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.2920 -1.7988 0.2311 1.8044 6.6561
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.289e+00 1.330e+00 2.473 0.01363 *
## elev 2.685e-03 1.351e-03 1.988 0.04718 *
## tci 2.998e-01 1.463e-01 2.050 0.04074 *
## streamdist 2.009e-03 1.566e-03 1.283 0.19988
## disturbLT-SEL 1.289e+00 8.008e-01 1.609 0.10803
## disturbSETTLE 1.529e-01 1.483e+00 0.103 0.91788
## disturbVIRGIN 4.687e+00 1.163e+00 4.032 6.13e-05 ***
## beers 3.922e-01 3.913e-01 1.002 0.31663
## elev:tci -5.754e-04 1.653e-04 -3.481 0.00053 ***
## elev:beers -9.180e-04 3.987e-04 -2.303 0.02158 *
## elev:streamdist -1.013e-06 1.513e-06 -0.669 0.50348
## elev:disturbLT-SEL -1.489e-03 7.837e-04 -1.901 0.05776 .
## elev:disturbSETTLE -5.309e-04 2.105e-03 -0.252 0.80094
## elev:disturbVIRGIN -4.234e-03 9.815e-04 -4.314 1.83e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.434 on 715 degrees of freedom
## Multiple R-squared: 0.2268, Adjusted R-squared: 0.2127
## F-statistic: 16.13 on 13 and 715 DF, p-value: < 2.2e-16
pseudo_r2(acer_poi)
## [1] 0.2052998
# comparing with anova
Anova(abies_poi, type=3)
## Warning: glm.fit: fitted rates numerically 0 occurred
## Warning: glm.fit: fitted rates numerically 0 occurred
## Warning: glm.fit: fitted rates numerically 0 occurred
## Warning: glm.fit: fitted rates numerically 0 occurred
## Warning: glm.fit: fitted rates numerically 0 occurred
## Warning: glm.fit: fitted rates numerically 0 occurred
## Warning: glm.fit: fitted rates numerically 0 occurred
## Analysis of Deviance Table (Type III tests)
##
## Response: cover
## LR Chisq Df Pr(>Chisq)
## elev 7.7275 1 0.0054387 **
## tci 2.0302 1 0.1542028
## streamdist 0.1416 1 0.7067055
## disturb 18.9038 3 0.0002862 ***
## beers 0.9997 1 0.3173889
## elev:tci 2.6835 1 0.1013951
## elev:beers 0.8721 1 0.3503802
## elev:streamdist 0.4894 1 0.4842143
## elev:disturb 16.7695 3 0.0007882 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(elev_interaction_mod_abiessubset, type=3)
## Anova Table (Type III tests)
##
## Response: cover
## Sum Sq Df F value Pr(>F)
## (Intercept) 3.086 1 9.0850 0.002668 **
## elev 3.620 1 10.6580 0.001148 **
## tci 1.191 1 3.5049 0.061596 .
## streamdist 11.530 1 33.9431 8.580e-09 ***
## disturb 180.959 3 177.5766 < 2.2e-16 ***
## beers 0.475 1 1.3996 0.237182
## elev:tci 1.304 1 3.8385 0.050478 .
## elev:beers 0.325 1 0.9560 0.328537
## elev:streamdist 14.401 1 42.3955 1.404e-10 ***
## elev:disturb 214.690 3 210.6762 < 2.2e-16 ***
## Residuals 242.873 715
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(acer_poi, type=3)
## Analysis of Deviance Table (Type III tests)
##
## Response: cover
## LR Chisq Df Pr(>Chisq)
## elev 19.317 1 1.107e-05 ***
## tci 16.063 1 6.127e-05 ***
## streamdist 6.859 1 0.00882 **
## disturb 70.800 3 2.877e-15 ***
## beers 6.083 1 0.01365 *
## elev:tci 31.864 1 1.654e-08 ***
## elev:beers 15.182 1 9.762e-05 ***
## elev:streamdist 4.048 1 0.04424 *
## elev:disturb 76.350 3 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(elev_interaction_mod_acersubset, type=3)
## Anova Table (Type III tests)
##
## Response: cover
## Sum Sq Df F value Pr(>F)
## (Intercept) 36.2 1 6.1161 0.0136273 *
## elev 23.4 1 3.9528 0.0471751 *
## tci 24.9 1 4.2018 0.0407449 *
## streamdist 9.8 1 1.6463 0.1998845
## disturb 101.8 3 5.7284 0.0007088 ***
## beers 6.0 1 1.0042 0.3166328
## elev:tci 71.8 1 12.1161 0.0005302 ***
## elev:beers 31.4 1 5.3025 0.0215814 *
## elev:streamdist 2.7 1 0.4480 0.5034835
## elev:disturb 112.5 3 6.3301 0.0003071 ***
## Residuals 4236.5 715
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# poisson might be better at estimating abies, but not acer based on the pseudo
# r squared values
checking plots of the elevation interaction model and removing more outliers—
par(mfrow = c(2,2))
plot(elev_interaction_mod_abiessubset)
# remove a few more outliers
# take out 56, 109,53 from abies subset
plot(elev_interaction_mod_acersubset)
# take out 56 , 187 from acer
elev_interaction_mod_acersubset elev_interaction_mod_abiessubset abies_poi (only includes elevation interaction) acer_poi (only includes elevation interaction)
Next, using stepAIC to check these semifinal models and decide if any variables can be removed—-
stepAIC(elev_interaction_mod_abiessubset)
## Start: AIC=-773.27
## cover ~ elev + tci + streamdist + disturb + beers + elev * tci +
## elev * beers + elev * streamdist + elev * disturb
##
## Df Sum of Sq RSS AIC
## - elev:beers 1 0.325 243.20 -774.29
## <none> 242.87 -773.27
## - elev:tci 1 1.304 244.18 -771.36
## - elev:streamdist 1 14.401 257.27 -733.28
## - elev:disturb 3 214.690 457.56 -317.54
##
## Step: AIC=-774.29
## cover ~ elev + tci + streamdist + disturb + beers + elev:tci +
## elev:streamdist + elev:disturb
##
## Df Sum of Sq RSS AIC
## - beers 1 0.198 243.40 -775.70
## <none> 243.20 -774.29
## - elev:tci 1 1.085 244.28 -773.05
## - elev:streamdist 1 14.464 257.66 -734.18
## - elev:disturb 3 214.366 457.56 -319.54
##
## Step: AIC=-775.7
## cover ~ elev + tci + streamdist + disturb + elev:tci + elev:streamdist +
## elev:disturb
##
## Df Sum of Sq RSS AIC
## <none> 243.40 -775.70
## - elev:tci 1 1.159 244.56 -774.24
## - elev:streamdist 1 14.353 257.75 -735.93
## - elev:disturb 3 215.637 459.03 -319.20
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + elev:tci +
## elev:streamdist + elev:disturb, data = abies_subset)
##
## Coefficients:
## (Intercept) elev tci streamdist
## 7.781e-01 -9.136e-04 -5.731e-02 -2.063e-03
## disturbLT-SEL disturbSETTLE disturbVIRGIN elev:tci
## -2.418e-02 -5.790e-02 -5.510e+00 7.168e-05
## elev:streamdist elev:disturbLT-SEL elev:disturbSETTLE elev:disturbVIRGIN
## 2.286e-06 6.744e-06 6.001e-05 5.012e-03
# shows that it may make sense to remove elev:beers from the abies model
stepAIC(elev_interaction_mod_acersubset)
## Start: AIC=1310.9
## cover ~ elev + tci + streamdist + disturb + beers + elev * tci +
## elev * beers + elev * streamdist + elev * disturb
##
## Df Sum of Sq RSS AIC
## - elev:streamdist 1 2.655 4239.1 1309.4
## <none> 4236.5 1310.9
## - elev:beers 1 31.418 4267.9 1314.3
## - elev:tci 1 71.789 4308.3 1321.2
## - elev:disturb 3 112.520 4349.0 1324.0
##
## Step: AIC=1309.36
## cover ~ elev + tci + streamdist + disturb + beers + elev:tci +
## elev:beers + elev:disturb
##
## Df Sum of Sq RSS AIC
## <none> 4239.1 1309.4
## - streamdist 1 19.087 4258.2 1310.6
## - elev:beers 1 31.707 4270.8 1312.8
## - elev:tci 1 69.149 4308.3 1319.2
## - elev:disturb 3 140.826 4380.0 1327.2
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev:tci + elev:beers + elev:disturb, data = acer_subset)
##
## Coefficients:
## (Intercept) elev tci streamdist
## 3.6226126 0.0023344 0.2813314 0.0010346
## disturbLT-SEL disturbSETTLE disturbVIRGIN beers
## 1.2807845 0.1107374 4.9106030 0.3924581
## elev:tci elev:beers elev:disturbLT-SEL elev:disturbSETTLE
## -0.0005556 -0.0009221 -0.0014959 -0.0004910
## elev:disturbVIRGIN
## -0.0044391
# shows that elevation and stream distance interaction may not be neccesarry
remodel with those taken out, models named as species_test_mod—-
#OLS
abies_test_mod = lm(cover ~ elev + tci + streamdist + disturb + elev * tci + elev * streamdist + elev * disturb, data = abies_subset)
acer_test_mod = lm(cover ~ elev + tci + streamdist + disturb + beers + elev * tci + elev * beers + elev * disturb, data = acer_subset)
summary(abies_test_mod)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + elev *
## tci + elev * streamdist + elev * disturb, data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.0486 -0.0840 -0.0027 0.0643 3.9848
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.781e-01 2.787e-01 2.792 0.00538 **
## elev -9.136e-04 2.865e-04 -3.189 0.00149 **
## tci -5.731e-02 3.296e-02 -1.739 0.08245 .
## streamdist -2.063e-03 3.564e-04 -5.790 1.05e-08 ***
## disturbLT-SEL -2.418e-02 1.904e-01 -0.127 0.89895
## disturbSETTLE -5.790e-02 3.417e-01 -0.169 0.86549
## disturbVIRGIN -5.510e+00 2.787e-01 -19.770 < 2e-16 ***
## elev:tci 7.168e-05 3.879e-05 1.848 0.06504 .
## elev:streamdist 2.285e-06 3.515e-07 6.502 1.48e-10 ***
## elev:disturbLT-SEL 6.744e-06 1.858e-04 0.036 0.97106
## elev:disturbSETTLE 6.001e-05 4.783e-04 0.125 0.90018
## elev:disturbVIRGIN 5.012e-03 2.354e-04 21.287 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5826 on 717 degrees of freedom
## Multiple R-squared: 0.6642, Adjusted R-squared: 0.6591
## F-statistic: 129 on 11 and 717 DF, p-value: < 2.2e-16
summary(acer_test_mod)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * disturb, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.2687 -1.7782 0.1818 1.8157 6.7014
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.6226126 1.2327860 2.939 0.003403 **
## elev 0.0023344 0.0012442 1.876 0.061044 .
## tci 0.2813314 0.1435767 1.959 0.050448 .
## streamdist 0.0010346 0.0005762 1.796 0.072995 .
## disturbLT-SEL 1.2807845 0.8003790 1.600 0.109990
## disturbSETTLE 0.1107374 1.4806386 0.075 0.940402
## disturbVIRGIN 4.9106030 1.1133143 4.411 1.19e-05 ***
## beers 0.3924581 0.3911946 1.003 0.316089
## elev:tci -0.0005556 0.0001626 -3.418 0.000668 ***
## elev:beers -0.0009221 0.0003985 -2.314 0.020940 *
## elev:disturbLT-SEL -0.0014959 0.0007833 -1.910 0.056557 .
## elev:disturbSETTLE -0.0004910 0.0021032 -0.233 0.815474
## elev:disturbVIRGIN -0.0044391 0.0009320 -4.763 2.31e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.433 on 716 degrees of freedom
## Multiple R-squared: 0.2263, Adjusted R-squared: 0.2133
## F-statistic: 17.45 on 12 and 716 DF, p-value: < 2.2e-16
#POISSON
abies_test_poi = glm(cover ~ elev + tci + streamdist + disturb + elev * tci + elev * streamdist + elev * disturb, data = abies_subset, family = "poisson")
## Warning: glm.fit: fitted rates numerically 0 occurred
acer_test_poi = glm(cover ~ elev + tci + streamdist + disturb + beers + elev * tci + elev * beers + elev * disturb, data = acer_subset, family = "poisson")
summary(abies_test_poi)
##
## Call:
## glm(formula = cover ~ elev + tci + streamdist + disturb + elev *
## tci + elev * streamdist + elev * disturb, family = "poisson",
## data = abies_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.776 0.000 0.000 0.000 2.964
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.716e+02 7.526e+04 -0.004 0.997
## elev 1.641e-01 4.534e+01 0.004 0.997
## tci -1.472e+00 1.017e+00 -1.448 0.148
## streamdist 2.078e-03 6.013e-03 0.346 0.730
## disturbLT-SEL -1.215e+02 8.834e+04 -0.001 0.999
## disturbSETTLE 2.537e+02 1.774e+05 0.001 0.999
## disturbVIRGIN 2.661e+02 7.526e+04 0.004 0.997
## elev:tci 8.836e-04 5.500e-04 1.607 0.108
## elev:streamdist -2.066e-06 3.284e-06 -0.629 0.529
## elev:disturbLT-SEL 6.516e-02 5.270e+01 0.001 0.999
## elev:disturbSETTLE -1.699e-01 2.532e+02 -0.001 0.999
## elev:disturbVIRGIN -1.602e-01 4.534e+01 -0.004 0.997
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 859.101 on 728 degrees of freedom
## Residual deviance: 49.147 on 717 degrees of freedom
## AIC: 151.91
##
## Number of Fisher Scoring iterations: 24
summary(acer_test_poi)
##
## Call:
## glm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * disturb, family = "poisson",
## data = acer_subset)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.3235 -1.2653 -0.0049 0.8262 3.0623
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 9.451e-01 2.473e-01 3.822 0.000132 ***
## elev 1.059e-03 2.700e-04 3.923 8.76e-05 ***
## tci 1.148e-01 3.080e-02 3.727 0.000194 ***
## streamdist 2.416e-04 1.190e-04 2.031 0.042276 *
## disturbLT-SEL 2.939e-01 1.553e-01 1.892 0.058508 .
## disturbSETTLE 1.831e-02 2.891e-01 0.063 0.949484
## disturbVIRGIN 2.358e+00 2.785e-01 8.468 < 2e-16 ***
## beers 1.943e-01 8.070e-02 2.408 0.016023 *
## elev:tci -2.080e-04 3.899e-05 -5.335 9.55e-08 ***
## elev:beers -3.478e-04 9.000e-05 -3.864 0.000112 ***
## elev:disturbLT-SEL -3.566e-04 1.605e-04 -2.222 0.026291 *
## elev:disturbSETTLE -9.055e-05 4.174e-04 -0.217 0.828248
## elev:disturbVIRGIN -2.214e-03 2.546e-04 -8.694 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1900.4 on 728 degrees of freedom
## Residual deviance: 1514.3 on 716 degrees of freedom
## AIC: 3501
##
## Number of Fisher Scoring iterations: 6
# the adjusted r squares show this did help
# after stepAIC abies AIC
AIC(abies_test_mod)
## [1] 1295.113
AIC(abies_test_poi)
## [1] 151.9142
# original abies AIC
AIC(elev_interaction_mod_abiessubset)
## [1] 1297.544
AIC(abies_poi)
## [1] 154.5813
# after stepAIC acer AIC
AIC(acer_test_mod)
## [1] 3380.172
AIC(acer_test_poi)
## [1] 3500.965
# original acer AIC
AIC(elev_interaction_mod_acersubset)
## [1] 3381.716
AIC(acer_poi)
## [1] 3498.917
The AIC’s also show this was helpful, so we can rename the test models as our final models to present… keeping in mind these final models are all using the subsetted data without outliers the name was just shortened final_abiessubset_model to final_abies_model and likewise with acer for easier access and readability.
final models—-
final_abies_model <- abies_test_mod
final_acer_model <- acer_test_mod
final_acer_poisson <- acer_test_poi
final_abies_poisson <- abies_test_poi
Question 1) For each species address the following additional questions:
How well does the exploratory model appear to explain cover? The OLS exploratory model explains cover well according to Acer rubrum species and less so for the Abies fraseri species due to slightly skewed distribution. However, the R^2 values of the Abies fraseri species still tended to be higher than the Acer rubrum species, most likely because the Acer rubrum is a much less habitat specialized species, it is more of a generalist and thus less likely to explain using variables.
Which explanatory variables are the most important? The most important explanatory value seems to be elevation in this data set, also used as a determinant of temperature/climate and thus having the most significant effect on cover of each species. Disturbance also plays an important role as an explanatory variable for distribution data. Especially when it comes to the abies species, elevation is extremely important as they do not survive in warm temperatures.
Do model diagnostics indicate any problems with violations of OLS assumptions? answered later in this document.
Are you able to explain variance in one species better than another, why might this be the case? Variance can be better explained in the Acer species. This might be the case because of the species of tree - these trees are much more evenly distributed and common throughout geographic locations in comparison to Abies which are more limited by what areas they proliferate within and can grow in. Abies also have more history of logging as a form of disturbance which causes this variable to have a more skewed effect on the distribution as well rather than an even variance. The Acer species on the other hand is much more normally distributed.
Questions number 2) Compare your qualatative assessment of which variables were most important in each model. Does it appear that changing the error distribution changed the results much? In what ways? and number 1) part “do model diagnostics indicate any problems with violations of OLS assumptions?”—-
abies_elev_poi = glm(cover ~ elev, data= abies_subset, family="poisson")
# also using elev_interaction_mod_abiessubset = lm(cover ~ elev, data= abies_subset)
When comparing the plots below it will confirm suspicions from the previously analyzed data that the Poisson distribution is a better fit for the abies species, and this is most likely due to the highly skewed elevation data. Since it can be seen in the original (cover ~ elevation) plot for abies, that the data is highly concentrated around 0 coverage until an elevation of 1500, where the trend turns visually turns into a positive correlation between elevation and abies cover.
par(mfrow=c(1,1))
plot(cover ~ elev, data= abies_subset)
This can be explained by the fact that the abies species are fraisir firs and they are highly selective on their habitat condition, they must be further north, or high in elevation, in order to grow. So, when the model lm(cover ~ elev, data= abies[_subset]), or any other model including elevation as a variable describing cover will not be taking into account this highly skewed data as it is working under a normal distribution. This can be seen with the hotpink link on the graph below. This is the residual line for cover ~ elev for the abies species under OLS conditions.
plot(cover ~ elev, data= abies_subset)
abline(elev_interaction_mod_abiessubset, col="hot pink")
## Warning in abline(elev_interaction_mod_abiessubset, col = "hot pink"): only
## using the first two of 14 regression coefficients
The line trends downwards, which we know to be false as the data trend actually increases as elevation increases, after a specific point. However, it can be seen through the blue line on the graph that when the model glm(cover ~ elev, data= abies[_subset], family=“poisson”) is plotted the regression line is much more in line with what we would expect to predict the data.
plot(cover ~ elev, data= abies_subset)
abline(elev_interaction_mod_abiessubset, col="hot pink")
## Warning in abline(elev_interaction_mod_abiessubset, col = "hot pink"): only
## using the first two of 14 regression coefficients
abline(abies_elev_poi, col= "light blue")
The intercept begins around the time the data points begin to increase, and it continues with an upward trend until the end of the graph, just like the data points.
However, for the acer species, when comparing these plots it confirms suspicion that the OLS distribution is a better fitfor the acer species, the residuals vs leverage graph and scale- location are much more better distributed along the line, and more evenly distributed in space during the OLS regression rather than the poisson regression.
par(mfrow= c(2,2))
plot(final_acer_model)
plot(final_acer_poisson)
more (numerical) proof that OLS is better for acer, and poisson is better for abies
pseudo_r2(final_acer_poisson)
## [1] 0.2031699
pseudo_r2(final_abies_poisson)
## [1] 0.942792
# Compare these to the output adjusted r squared from normal
summary(final_acer_model)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev * tci + elev * beers + elev * disturb, data = acer_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.2687 -1.7782 0.1818 1.8157 6.7014
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.6226126 1.2327860 2.939 0.003403 **
## elev 0.0023344 0.0012442 1.876 0.061044 .
## tci 0.2813314 0.1435767 1.959 0.050448 .
## streamdist 0.0010346 0.0005762 1.796 0.072995 .
## disturbLT-SEL 1.2807845 0.8003790 1.600 0.109990
## disturbSETTLE 0.1107374 1.4806386 0.075 0.940402
## disturbVIRGIN 4.9106030 1.1133143 4.411 1.19e-05 ***
## beers 0.3924581 0.3911946 1.003 0.316089
## elev:tci -0.0005556 0.0001626 -3.418 0.000668 ***
## elev:beers -0.0009221 0.0003985 -2.314 0.020940 *
## elev:disturbLT-SEL -0.0014959 0.0007833 -1.910 0.056557 .
## elev:disturbSETTLE -0.0004910 0.0021032 -0.233 0.815474
## elev:disturbVIRGIN -0.0044391 0.0009320 -4.763 2.31e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.433 on 716 degrees of freedom
## Multiple R-squared: 0.2263, Adjusted R-squared: 0.2133
## F-statistic: 17.45 on 12 and 716 DF, p-value: < 2.2e-16
summary(final_abies_model)
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + elev *
## tci + elev * streamdist + elev * disturb, data = abies_subset)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.0486 -0.0840 -0.0027 0.0643 3.9848
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.781e-01 2.787e-01 2.792 0.00538 **
## elev -9.136e-04 2.865e-04 -3.189 0.00149 **
## tci -5.731e-02 3.296e-02 -1.739 0.08245 .
## streamdist -2.063e-03 3.564e-04 -5.790 1.05e-08 ***
## disturbLT-SEL -2.418e-02 1.904e-01 -0.127 0.89895
## disturbSETTLE -5.790e-02 3.417e-01 -0.169 0.86549
## disturbVIRGIN -5.510e+00 2.787e-01 -19.770 < 2e-16 ***
## elev:tci 7.168e-05 3.879e-05 1.848 0.06504 .
## elev:streamdist 2.285e-06 3.515e-07 6.502 1.48e-10 ***
## elev:disturbLT-SEL 6.744e-06 1.858e-04 0.036 0.97106
## elev:disturbSETTLE 6.001e-05 4.783e-04 0.125 0.90018
## elev:disturbVIRGIN 5.012e-03 2.354e-04 21.287 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5826 on 717 degrees of freedom
## Multiple R-squared: 0.6642, Adjusted R-squared: 0.6591
## F-statistic: 129 on 11 and 717 DF, p-value: < 2.2e-16
This further proves that OLS is better fitted for the Acer species as the pseudo R^2 value is less than the normal r^2 value, whereas the pseudo R^2 value for abies poisson distribution is higher than the OLS value
So, it can be concluded that the best models to represent the cover for species Acer and Abies are: the OLS regression of Acer (final_acer_model) and the poisson regression of Abies (final_abies_poisson), as the skewed elevation data in the abies species makes it less accurate when using OLS regression.
This analysis found that with OLS modeling, the Abies fraseri species distribution were significantly affected by both elevation and disturbance while the Acer rubrum species distribution were significantly affected by all of the explanatory variables. Poisson modeling was found to model the Abies Fraseri species best while OLS models yielded the most consistent and highest R-squared values specifically for elevation and disturbance in the Acer Rubrum species, especially when outliers are removed for uniformity of data. The interaction effect proves significance specifically of the explanatory variable ‘elevation’ in the Abies fraseri species - due to these trees being located primarily in higher elevation areas and distribution variable being skewed due to this factor. Including a factor of elevation also increases the performance of the Acer Rubrum species models, however not to the extent it does of the abies for reasons previously mentioned.
Repeat of the stepAIC used in the model selection above to answer question four. Using the acersubset and elevation interaction.
stepAIC(elev_interaction_mod_acersubset)
## Start: AIC=1310.9
## cover ~ elev + tci + streamdist + disturb + beers + elev * tci +
## elev * beers + elev * streamdist + elev * disturb
##
## Df Sum of Sq RSS AIC
## - elev:streamdist 1 2.655 4239.1 1309.4
## <none> 4236.5 1310.9
## - elev:beers 1 31.418 4267.9 1314.3
## - elev:tci 1 71.789 4308.3 1321.2
## - elev:disturb 3 112.520 4349.0 1324.0
##
## Step: AIC=1309.36
## cover ~ elev + tci + streamdist + disturb + beers + elev:tci +
## elev:beers + elev:disturb
##
## Df Sum of Sq RSS AIC
## <none> 4239.1 1309.4
## - streamdist 1 19.087 4258.2 1310.6
## - elev:beers 1 31.707 4270.8 1312.8
## - elev:tci 1 69.149 4308.3 1319.2
## - elev:disturb 3 140.826 4380.0 1327.2
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + beers +
## elev:tci + elev:beers + elev:disturb, data = acer_subset)
##
## Coefficients:
## (Intercept) elev tci streamdist
## 3.6226126 0.0023344 0.2813314 0.0010346
## disturbLT-SEL disturbSETTLE disturbVIRGIN beers
## 1.2807845 0.1107374 4.9106030 0.3924581
## elev:tci elev:beers elev:disturbLT-SEL elev:disturbSETTLE
## -0.0005556 -0.0009221 -0.0014959 -0.0004910
## elev:disturbVIRGIN
## -0.0044391
Using the output from the stepAIC(elev_interaction_mod_acersubset) it can be used to describe the functionality of stepAIC(). When used the stepwise function takes a backward approach by first looking at all of the variables included in a model taken in the function. By running through the function the first time it is identified that the overall AIC is 1310.9, however after the second output when the function is modified it is identified to have an AIC of 1309.36. It can be seen that this is equivalent to the AIC Value corresponding to the elev:streamdist,it can be concluded that the stepAIC function identifies the AIC value of the model IF the variable it is describing is dropped. From this output it can be further concluded that these are the variables which can be removed to to improve the model in a simple way.So, using the Acer subset, the variable elev:streamdist is the only variables that should be considered to be removed. However, in the stepAIC(elev_interaction_mod_abiessubset), shown below, it can be determined that removing elev:beers and beers will both improve the proposed model by lowering the AIC value.
stepAIC(elev_interaction_mod_abiessubset)
## Start: AIC=-773.27
## cover ~ elev + tci + streamdist + disturb + beers + elev * tci +
## elev * beers + elev * streamdist + elev * disturb
##
## Df Sum of Sq RSS AIC
## - elev:beers 1 0.325 243.20 -774.29
## <none> 242.87 -773.27
## - elev:tci 1 1.304 244.18 -771.36
## - elev:streamdist 1 14.401 257.27 -733.28
## - elev:disturb 3 214.690 457.56 -317.54
##
## Step: AIC=-774.29
## cover ~ elev + tci + streamdist + disturb + beers + elev:tci +
## elev:streamdist + elev:disturb
##
## Df Sum of Sq RSS AIC
## - beers 1 0.198 243.40 -775.70
## <none> 243.20 -774.29
## - elev:tci 1 1.085 244.28 -773.05
## - elev:streamdist 1 14.464 257.66 -734.18
## - elev:disturb 3 214.366 457.56 -319.54
##
## Step: AIC=-775.7
## cover ~ elev + tci + streamdist + disturb + elev:tci + elev:streamdist +
## elev:disturb
##
## Df Sum of Sq RSS AIC
## <none> 243.40 -775.70
## - elev:tci 1 1.159 244.56 -774.24
## - elev:streamdist 1 14.353 257.75 -735.93
## - elev:disturb 3 215.637 459.03 -319.20
##
## Call:
## lm(formula = cover ~ elev + tci + streamdist + disturb + elev:tci +
## elev:streamdist + elev:disturb, data = abies_subset)
##
## Coefficients:
## (Intercept) elev tci streamdist
## 7.781e-01 -9.136e-04 -5.731e-02 -2.063e-03
## disturbLT-SEL disturbSETTLE disturbVIRGIN elev:tci
## -2.418e-02 -5.790e-02 -5.510e+00 7.168e-05
## elev:streamdist elev:disturbLT-SEL elev:disturbSETTLE elev:disturbVIRGIN
## 2.286e-06 6.744e-06 6.001e-05 5.012e-03